package com.tabnet.servlet;

import java.io.IOException;
import java.util.Date;
import java.util.HashMap;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.tabnet.beans.gammeproduit.PropositionGamme;
import com.tabnet.dao.DAOException;
import com.tabnet.dao.DAOFactory;
import com.tabnet.dao.DAOPropositionGamme;

public class AccepterProposition extends HttpServlet {

	private static final long serialVersionUID = 1L;
	
	public static final String ATT_GAMME       	 	= "proposition";
    public static final String ATT_FORM         	= "form";
    public static final String ATT_PROP		      	= "propositions";
    public static final String GET					= "ref";
    public static final String VUE_FORM     		= "/admin/accepterProposition.jsp";
    public static final String VUE_SUCCES       	= "/admin/listeProposition.jsp";
    
    private DAOPropositionGamme daoProp;

    @SuppressWarnings("unchecked")
    public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
        /* À la réception d'une requête GET, affichage du formulaire avec les infos de l'appel d'offre */
    	HttpSession session = request.getSession();
    	
    	// récupération de la collection
        HashMap<String, PropositionGamme> lesProposition = (HashMap<String, PropositionGamme>) session.getAttribute( ATT_PROP );
        // récupération de la référence et de l'objet à modifier
        String ref = (String) request.getParameter(GET);
        PropositionGamme prop = lesProposition.get(ref);
       
        // transmission des données
    	request.setAttribute( ATT_GAMME, prop);
        this.getServletContext().getRequestDispatcher( VUE_FORM ).forward( request, response );
    }

    @SuppressWarnings("unchecked")
    public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
    	try {
			this.daoProp = DAOFactory.getInstance().getPropositionGammeDAO();
		} catch (DAOException e1) {
			e1.printStackTrace();
		}

        // récupération de la map des appels d'offre dans la session
        HttpSession session = request.getSession();
        HashMap<String, PropositionGamme> lesProposition = (HashMap<String, PropositionGamme>) session.getAttribute( ATT_PROP );
        
        // récupération des informations postées
        String ref = (String) request.getParameter(GET);
        PropositionGamme prop = lesProposition.get(ref);
        prop.getGammeProposer().setDtMiseEnLigne(new Date());
        prop.getGammeProposer().getProduitG().setPuP(Double.parseDouble(request.getParameter("pu")));
        
        try {
			daoProp.updPropositionGamme(prop, "accepter");
			lesProposition.remove(prop.getRef());
		} catch (DAOException e) {
			e.printStackTrace();
		}
        
        /* Et enfin (ré)enregistrement de la map en session */
        session.setAttribute(ATT_PROP, lesProposition);
	 
	    response.sendRedirect( request.getContextPath() + VUE_SUCCES );
    }
}
